エクステンション概要
========

Yii を拡張することは、開発の最中に普通に行われていることです。
例えば、新しくコントローラを開発するときは、[CController] クラスを継承することで Yii を拡張しています。
また、新しくウィジェットを書くときは、[CWidget] あるいは既存のウィジェットクラスを拡張しています。
もし拡張されたコードが第三者によって再利用されるように設計されていれば、それが **エクステンション** と呼ばれます。

エクステンションは通常単一の目的で使用されます。Yii の用語では、以下の種類に分類されます。

 * [アプリケーションコンポーネント](/doc/guide/basics.application#sec-4)
 * [ビヘイビア](/doc/guide/basics.component#sec-3)
 * [ウィジェット](/doc/guide/basics.view#sec-3)
 * [アクション](/doc/guide/basics.controller#sec-4)
 * [フィルタ](/doc/guide/basics.controller#sec-5)
 * [コントローラ](/doc/guide/basics.controller)
 * バリデータ: これは [CValidator] クラスを拡張したコンポーネントクラスです。
 * [コンソールコマンド](/doc/guide/topics.console)
 * [モジュール](/doc/guide/basics.module):モジュールは自己充足的なソフトウエアユニットであり、[モデル](/doc/guide/basics.model), [ビュー](/doc/guide/basics.view), [コントローラ](/doc/guide/basics.controller), その他の支援的なコンポーネントから構成されます。
 * ヘルパ: これは静的なメソッドのみを持つクラスです。クラス名を名前空間として用いるグローバル関数のようなものです。
多くの点においてモジュールは [アプリケーション](/doc/guide/basics.application) に似ています。
一番の違いは、モジュールはアプリケーションの内部にあるということです。
例としては、ユーザ管理機能を提供するモジュールが挙げられます。

エクステンションは、上のどれにも当てはまらないコンポーネントである場合があります。
現実の話として、Yii は注意深く設計されており、コードのほとんど全ての部分は、個別のニーズに適するように、拡張してカスタマイズすることが出来ます。

<div class="revision">$Id$</div>
